﻿namespace ProblemsSet
{
    public class Problem_53 : BaseProblem
    {
        public override object GetResult()
        {
            long res = 0;
            for (int n = 1; n <= 100; n++)
            {
                for (int r = 1; r <= n; r++)
                {
                    var q = MathLogic.GetC(r, n, 10000000, true);
                    if (q >= 1000000) res++;
                }
            }
            return res;
        }

        public override string Problem
        {
            get
            {
                return @"There are exactly ten ways of selecting three from five, 12345:

123, 124, 125, 134, 135, 145, 234, 235, 245, and 345

In combinatorics, we use the notation, 5C3 = 10.

In general,

nCr =	
n!

r!(nr)!
,where r  n, n! = n(n1)...321, and 0! = 1.
It is not until n = 23, that a value exceeds one-million: 23C10 = 1144066.

How many, not necessarily distinct, values of  nCr, for 1  n  100, are greater than one-million?";
            }
        }

        public override bool IsSolved
        {
            get
            {
                return true;
            }
        }

        public override object Answer
        {
            get
            {
                return 4075;
            }
        }

    }
}
